// utils/parser.js

/**
 * 解析带有单词标记的文本内容
 * @param {string} text - 包含<word data='xxx'>yyy</word>标记的文本
 * @return {Array} - 解析后的文本片段数组，每个元素包含type和content
 */
export function parseText(text) {
  if (!text) return [];
  
  const result = [];
  let currentIndex = 0;
  const wordRegex = /<word data=['\"]([^'\"]+)['\"]>([^<]+)<\/word>/g;
  let match;
  
  while ((match = wordRegex.exec(text)) !== null) {
    // 添加单词前的普通文本
    if (match.index > currentIndex) {
      result.push({
        type: 'text',
        content: text.substring(currentIndex, match.index)
      });
    }
    
    // 添加单词
    result.push({
      type: 'word',
      word: match[1],
      content: match[2]
    });
    
    currentIndex = match.index + match[0].length;
  }
  
  // 添加最后一段普通文本
  if (currentIndex < text.length) {
    result.push({
      type: 'text',
      content: text.substring(currentIndex)
    });
  }
  
  return result;
}

/**
 * 查找单词数据
 * @param {string} word - 要查找的单词
 * @param {Array} wordsData - 单词数据数组
 * @return {Object|null} - 找到的单词数据或null
 */
export function findWordData(word, wordsData) {
  if (!word || !wordsData) return null;
  return wordsData.find(item => item.word.toLowerCase() === word.toLowerCase()) || null;
}